#include "multi_object_tracker.h"
namespace perception
{
    namespace algorithm
    {

        MultiObjectTracker::MultiObjectTracker(/* args */)
        {
            // data_association_ = std::make_unique<DataAssociation>(
            //     can_assign_matrix, max_dist_matrix, max_area_matrix, min_area_matrix, max_rad_matrix,
            //     min_iou_matrix);
        }

        MultiObjectTracker::~MultiObjectTracker()
        {
        }

        int MultiObjectTracker::Process(const std::vector<LidarObject> &input_objects_msg, const Localization &loc)
        {
            // 1坐标转换 base_link to world
            std::vector<LidarObject> input_objs = input_objects_msg;
            CoordinateTransformation(input_objs, loc, false);
            // 2预测
            for (auto itr = list_tracker_.begin(); itr != list_tracker_.end(); ++itr)
            {
                (*itr)->predict(loc.time); // 预测暂时没有东西
            }
            // 3数据关联匹配

            // 4更新
        }
    }
}